package com.osdp.uc.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.osdp.common.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import com.osdp.common.base.BaseVo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel("用户")
public class UcUserVo extends BaseVo{

	/**
	 * 登录账号
	 */
	@Excel(name = "登录账号", width = 15)
	@ApiModelProperty(value = "登录账号")
	private String userName;

	/**
	 * 真实姓名
	 */
	@Excel(name = "真实姓名", width = 15)
	@ApiModelProperty(value = "真实姓名")
	private String realName;

	@ApiModelProperty(value = "部门id")
	private String orgId;

	@ApiModelProperty(value = "部门名称")
	private String orgName;

	/**
	 * 密码
	 */
	@Excel(name = "密码", width = 15)
	@ApiModelProperty(value = "密码")
	private String passWord;

	/**
	 * md5密码盐
	 */
	@Excel(name = "md5密码盐", width = 15)
	@ApiModelProperty(value = "md5密码盐")
	private String salt;

	/**
	 * 头像
	 */
	@Excel(name = "头像", width = 15)
	@ApiModelProperty(value = "头像")
	private String avatar;

	/**
	 * 生日
	 */
	@Excel(name = "生日", width = 20, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty(value = "生日")
	private Date birthday;

	/**
	 * 性别（1：男 2：女,0未知）
	 */
	@Excel(name = "性别（1：男 2：女,0未知）", width = 15)
	@ApiModelProperty(value = "性别（1：男 2：女,0未知）")
	@Dict(dicCode = "gender")
	private String gender;

	/**
	 * 电子邮件
	 */
	@Excel(name = "电子邮件", width = 15)
	@ApiModelProperty(value = "电子邮件")
	private String email;

	/**
	 * 电话，
	 */
	@Excel(name = "电话", width = 15)
	@ApiModelProperty(value = "电话")
	private String phone;

	/**
	 * 状态(1：正常 2：冻结 ）
	 */
	@Excel(name = "状态(1：正常  2：冻结 ）", width = 15)
	@ApiModelProperty(value = "状态(1：正常  2：冻结 ）")
	@Dict(dicCode = "validation")
	private String validation;

	/**
	 * 同步工作流引擎1同步0不同步
	 */
//	@Excel(name = "同步工作流引擎1同步0不同步", width = 15)
//	@ApiModelProperty(value = "同步工作流引擎1同步0不同步")
//	private String activitiSync;
	/**
	 * 主部门id
	 */
	@Excel(name = "主部门id", width = 15)
	@ApiModelProperty(value = "主部门id")
	private String priorityDepartId;

	@Excel(name = "是否主部门", width = 15)
	@ApiModelProperty(value = "是否主部门")
	private String isMajor;

	@ApiModelProperty(value = "入职时间")
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private java.util.Date entryDate;

	@ApiModelProperty(value = "离职时间")
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private java.util.Date leaveDate;

	/**
	 * 员工ID
	 */
//	@Excel(name = "员工ID", width = 15)
//	@ApiModelProperty(value = "员工ID")
//	private String employeeId;

	/**
	 * 租户ID
	 * 可以理解成初始租户ID，默认租户ID
	 */
	@ApiModelProperty("主租户ID")
	@Excel(name = "主租户ID", width = 15)
	private String tenantIds;

	/**支持一个用户多个职务，,多个ID按 “，” 分割，目前暂只实现一个用户一个职称*/
	@ApiModelProperty("职务ID")
	private String titleIds;


	/** 角色ID */
	private List<String> roles = new ArrayList<>();
	/** 岗位ID,多个ID按 “，” 分割 */
	private String positionIds;

	private String positionNames;
}
